//******************************************************//
//														//
//				EjecutoraTelefonia.java					//
//														//
//******************************************************//

package Telefonia;

import java.util.*;

import Actores.Telefonia;

public class EjecutoraTelefonia {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        Telefonia t = new Telefonia();

        int opc = 0;

        do {
        	System.out.print(
                    "=====================================================================\n" +
                    "\n------------------------------- VENDEDOR --------------------------\n" +
                    " 1 ) - Agregar vendedor.\n" +
                    " 2 ) - Modificar datos de vendedor.\n" +
                    " 3 ) - Dar de baja un vendedor.\n" +
                    " 4 ) - Modificar sueldo basico a los vendedores.\n" +
                    " 5 ) - Mostrar sueldo basico de los vendedores.\n" +
                    " 6 ) - Agregar un vendedor a un representante.\n" +
                    " 7 ) - Eliminar un vendedor de un representante.\n" +
                    " 8 ) - Mostrar vendedores de un representante.\n" +  
                    " 9 ) - Vendedor con mas ventas.\n" +
                    " 10 ) - Listar vendedores sin representantes.\n" +
                    " 11 ) - Listar vendedores\n\n" +
                    
                    "--------------------------------- CLIENTE ---------------------------\n" +
                    " 12 ) - Agregar cliente.\n" +
                    " 13 ) - Modificar datos de cliente.\n" +
                    " 14 ) - Dar de baja un cliente.\n" +                    
                    " 15 ) - Informar por cliente importes a pagar.\n" +                    
                    " 16 ) - Cliente con mas cantidad de lineas.\n" +                    
                    " 17 ) - Listar lineas de un cliente\n" +
                    " 18 ) - Listar clientes\n\n" +
                    
                    "--------------------------------- LINEA -----------------------------\n" +
                    " 19 ) - Agregar linea.\n" +
                    " 20 ) - Cambiar el estado de una linea a activo/inactivo.\n" +
                    " 21 ) - Ver el estado (activo/inactivo) de determinada linea.\n" +
                    " 22 ) - Agregar linea nueva a un cliente.\n" +
                    " 23 ) - Modificar importe por telefono vendido.\n" +
                    " 24 ) - Ver importe por telefono vendido.\n" +
                    " 25 ) - Pasar linea de abono a tarjeta y viceversa.\n" +                  
                    " 26 ) - Consultar saldo disponible de linea\n" +
                    " 27 ) - Consumir credito de una linea.\n" +
                    " 28 ) - Listar lineas\n\n" +
                    
                    "------------------------------ SERVICIO -----------------------------\n" +
                    " 29 ) - Agregar servicio.\n" +
                    " 30 ) - Modificar datos de servicio.\n" +
                    " 31 ) - Dar de baja un servicio.\n" +
                    " 32 ) - Agregar servicio a un tel de abono.\n" +
                    " 33 ) - Dar de baja un servicio a un telefono de abono.\n" +
                    " 34 ) - Mostrar servicios de un telefono de abono.\n" + 
                    " 35 ) - Listar servicios\n\n" +
                                        
                    "------------------------------ REPRESENTANTE ------------------------\n" +
                    " 36 ) - Agregar representante.\n" +
                    " 37 ) - Modificar datos de representante.\n" +
                    " 38 ) - Dar de baja un representante.\n" +
                    " 39 ) - Informar para un rep. el total en sueldos a pagar.\n" +
                    " 40 ) - Listar representantes\n\n" +
                    
                    "-------------------------------- TARJETA ----------------------------\n" +
                    " 41 ) - Agregar tarjeta.\n" +
                    " 42 ) - Modificar datos de tarjeta.\n" +
                    " 43 ) - Dar de baja un tarjeta.\n" +
                    " 44 ) - Cargar con una tarjeta un telefono.\n" +
                    " 45 ) - Modificar fecha de vencimiento de tarjeta.\n" +
                    " 46 ) - Listar tarjetas\n\n" +
                    
                    "------------------------------ FACTURA ------------------------------\n" +
                    " 47 ) - Modificar recargo por dia por pago fuera de termino.\n" +
                    " 48 ) - Ver recargo por dia por pago fuera de termino.\n" +       
                    " 49 ) - Listar facturas sin pagar,vencidas.\n" +                    
                    " 50 ) - Marcar como pagada una factura.\n" +              
                    " 51) - Realizar la creacion de facturas mensual.\n" + 
                    " 52 ) - Listar facturas\n\n" +
                    
                    "------------------------------ VENTAS -------------------------------\n" +
                    " 53 ) - Vender una o varias lineas a un cliente.\n" +
                    " 54 ) - Listar ventas totales\n" +
                    " 55 ) - Listar ventas de un vendedor.\n" +
                    " 56 ) - Limpiar ventas del mes.\n\n" +       
                    
                    "\n 0 ) - Salir \n\n" +
                    
                    "======================================================================\n\n" +
                    "Opcion: ");

            opc = in.nextInt();

            switch (opc) {
                
            	// VENDEDOR
            	case 1: t.agregarVendedor(); break;
            	case 2: t.modificarVendedor(); break;
            	case 3: t.eliminarVendedor(); break;
            	case 4: t.setSueldoBasico(); break;
            	case 5: t.getSueldoBasico(); break; 
            	case 6: t.agregarVendedorRep(); break;
            	case 7: t.eliminarVendedorRep(); break;
            	case 8: t.listarVendedoresRepresentante(); break;            
            	case 9: t.vendedorConMasVentas(); break;
            	case 10: t.vendedoresHuerfanos(); break;
            	case 11: t.listarVendedores(); break;            
            
            	// CLIENTE
            	case 12: t.agregarCliente(); break;
            	case 13: t.modificarCliente(); break;
            	case 14: t.eliminarCliente(); break;
            	case 15: t.informarTotalClientes(); break;
            	case 16: t.clienteConMasLineas(); break;  
            	case 17: t.listarLineasCliente(); break;            
            	case 18: t.listarClientes(); break;
            	
            	// LINEA
            	case 19: t.agregarLinea(); break;
            	case 20: t.setEstadoLinea(); break;
            	case 21: t.getEstadoLinea(); break;
            	case 22: t.darLineaACliente(); break;
            	case 23: t.setImporteTelefonoVendido(); break;
            	case 24: t.verImporteTelefonoVendido(); break;          
            	case 25: t.cambiarTipoLinea(); break; 
            	case 26: t.consultarSaldo(); break;
            	case 27: t.consumirCredito(); break;
            	case 28: t.listarLineas(); break;
            	
            	// SERVICIO
            	case 29: t.agregarServicio(); break;
            	case 30: t.modificarServicio(); break;
            	case 31: t.eliminarServicio(); break;
            	case 32: t.agregarServicioTel(); break;
            	case 33: t.borrarServicioTel(); break;
            	case 34: t.mostrarServiciosTel(); break;
            	case 35: t.listarServicios(); break;            
            
            	// REPRESENTANTE
            	case 36: t.agregarRepresentante(); break;
            	case 37: t.modificarRepresentante(); break;
            	case 38: t.eliminarRepresentante(); break;
            	case 39: t.informarTotalPagar(); break;
            	case 40: t.listarRepresentantes(); break;
            
            	// TARJETA
            	case 41: t.agregarTarjeta(); break;  
            	case 42: t.modificarTarjeta(); break;
            	case 43: t.eliminarTarjeta(); break;
            	case 44: t.cargarTelTarj(); break;
            	case 45: t.modificarFechaVencTarjeta(); break;
            	case 46: t.listarTarjetas(); break;
            
            	// FACTURA
            	case 47: t.modificarRecargoDia(); break;
            	case 48: t. getRecargoDia(); break;
            	case 49: t.informarFacturasVencidas(); break;            	
	            case 50: t.pagarFactura(); break;
	            case 51: t.facturarClientes(); break;
	            case 52: t.listarFacturas(); break;
	            
	            // VENTAS
	            case 53: t.agregarVenta(); break;
	            case 54: t.listarVentas(); break;            
	            case 55: t.listarVentasVendedor(); break;
	            case 56: t.limpiarVentasMes(); break;             
                
                case 0: System.out.println("Saliendo: TP-FinalPOO."); break;
                default: System.out.println("Error: Opcion no valida.");
            }
        } while (opc != 0);
    }
}